home *** CD-ROM | disk | FTP | other *** search
/ Windows Game Programming for Dummies (2nd Edition) / WinGamProgFD.iso / mac / DirectX SDK / DXSDK / include / DShowIDL / Mstvca.idl < prev    next >
Text File  |  2001-10-08  |  48KB  |  846 lines

  1. //------------------------------------------------------------------------------
  2. // File: MSTvCA.idl
  3. //
  4. // Desc: IDL source for MSTvCA.dll
  5. //
  6. // Copyright (c) 1999-2001, Microsoft Corporation.  All rights reserved.
  7. //------------------------------------------------------------------------------
  8.  
  9. // This file will be processed by the MIDL tool to
  10. // produce the type library (CA.tlb) and marshalling code.
  11.  
  12. import "oaidl.idl";
  13. import "ocidl.idl";
  14. #include "olectl.h"
  15.  
  16. /*  [
  17.         object,
  18.         dual,
  19.         uuid(49a32d3c-7d85-11d2-8895-00c04f794967),
  20.         helpstring("ITuneRequest Interface"),
  21.         pointer_default(unique)
  22.     ]
  23.     interface ITuneRequest : IDispatch
  24.     {
  25.     };
  26. */
  27. import "tuner.idl";         // includes the whole BDA world!  Yecko!
  28.  
  29.     interface ICAManager;
  30.     interface ICARequest;
  31.     interface ICAPolicy;
  32.     interface ICAPolicies;
  33.     interface ICAPoliciesInternal;
  34.     interface ICAToll;
  35.     interface ICATolls;
  36.     interface ICATollsInternal;
  37.     interface ICADenial;
  38.     interface ICADenials;
  39.     interface ICAOffer;
  40.     interface ICAOffers;
  41.     interface ICAComponent;
  42.     interface ICAComponents;
  43.  
  44. #define COLLECTID_Item              0
  45. #define COLLECTID_Count             1
  46. #define COLLECTID_Add               2
  47. #define COLLECTID_Remove            3
  48. #define COLLECTID_AddNew            4
  49. #define COLLECTID_CountDenied       5       // ICADenials
  50. #define COLLECTID_CountSelected     6       // ICADenials
  51. #define COLLECTID_PaySelectedTolls  7       // ICADenials
  52.  
  53. typedef enum 
  54. {
  55.     Unselected      = 0,
  56.     Selected        = 1
  57. } CATollState;
  58.  
  59. typedef enum 
  60. {
  61.     Denied           = 0,
  62.     Transient        = 1,
  63. //  Allowed          = 2,
  64.     DescriptionShort = 10,          // one of the description fields changed
  65.     DescriptionLong  = 11,          //    via a ICADenial::put_Description() 
  66.     DescriptionHTML  = 12,          // 
  67.     DescriptionXML   = 13           //    (keep these current+10 with list below...)
  68. } CADenialState;
  69.  
  70. typedef enum    
  71. {
  72.     Short       = 0,        // must be numeric, starting at 0.  (Used as array index).
  73.     Long        = 1,        //  in approximatly order of length in bytes
  74.     URL         = 2,
  75.     HTML        = 3,
  76.     XML         = 4,
  77.     kDescEnd    = 5         // invalid format, 1+ last real one (Used as array length).
  78. } CADescFormat;
  79.  
  80.  
  81. typedef enum 
  82. {
  83.     Request    = 1,
  84.     ComponentX = 2,
  85.     Offers     = 4,
  86.     PaidTolls  = 8,
  87.     Policies   = 16,
  88.     Standard   = 15,     // all put the policies
  89.     All        = 31      // all
  90. } CAUIDisplayFields;
  91.  
  92.     // ---------------------------------------------------------------
  93.     //   if add methods to ICAManagerInternal, be sure to add MAGICCALL in CAManagerProxy too..
  94.     // ---------------------------------------------------------------
  95.  
  96.     [
  97.         object,
  98.         uuid(11166301-DF8A-463a-B620-7BEC23542010),
  99.         dual,                                           // Helpers are Dual, IUnknown... so see from VB
  100.         hidden, restricted, 
  101.         helpstring("ICAManagerInternal Interface"),
  102.         pointer_default(unique)
  103.     ]
  104.     interface ICAManagerInternal : IUnknown
  105.     {
  106.         [         id(1),   helpstring("method Save")]                       HRESULT Save();
  107.         [         id(2),   helpstring("method Load")]                       HRESULT Load();
  108.         [propput, id(3),   helpstring("property MarkDirty")]                HRESULT MarkDirty([in] BOOL fDirty);
  109.         [propget, id(3),   helpstring("property MarkDirty")]                HRESULT MarkDirty([out, retval] BOOL *pfDirty);
  110.         [propput, id(4),   helpstring("property TuneRequest")]              HRESULT TuneRequest([in] ITuneRequest *ptunereq);
  111.         [         id(5),   helpstring("method GetDefaultUI")]               HRESULT GetDefaultUI([out] HWND *phwnd);
  112.         [         id(6),   helpstring("method SetDefaultUI")]               HRESULT SetDefaultUI([in] HWND hwnd);
  113.                     // return the main CAManager object, not the proxy one.
  114.         [propget, id(7),   helpstring("property CAManagerMain")]            HRESULT CAManagerMain([out,retval] ICAManager **ppManagerMain);
  115.         [propput, id(8),   helpstring("property BroadcastEventService")]    HRESULT BroadcastEventService([in] IBroadcastEvent *pBroadcastEventService);
  116.         [propget, id(8),   helpstring("property BroadcastEventService")]    HRESULT BroadcastEventService([out, retval] IBroadcastEvent **ppBroadcastEventService);
  117.         [         id(9),   helpstring("method DisplayDefaultUI")]           HRESULT DisplayDefaultUI([in] VARIANT_BOOL fDisplay);
  118.         [         id(10),  helpstring("method EnableDefaultUIPayTollsButton")]  HRESULT EnableDefaultUIPayTollsButton([in] VARIANT_BOOL fEnabled);
  119.         [         id(11),  helpstring("method UpdateDefaultUIForToll")]     HRESULT UpdateDefaultUIForToll([in] ICAToll *pToll,[in] CATollState enState);
  120.         [propput, id(12),  helpstring("property TuneRequestInt")]           HRESULT TuneRequestInt([in] ITuneRequest *ptunereq);
  121.         [         id(13),  helpstring("method AddDenialsFor")]              HRESULT AddDenialsFor([in] IUnknown *pUnk);     // see also ICAManager::get_DenialsFor()
  122.         [         id(14),  helpstring("method RemoveDenialsFor")]           HRESULT RemoveDenialsFor([in] IUnknown *pUnk);
  123.  
  124.         [         id(2201),helpstring("method NotifyRequestActivated")]     HRESULT NotifyRequestActivated([in] ICARequest *pReq);
  125.         [         id(2202),helpstring("method NotifyRequestDeactivated")]   HRESULT NotifyRequestDeactivated([in] ICARequest *pReq);
  126.         [         id(2203),helpstring("method NotifyOfferAdded")]           HRESULT NotifyOfferAdded([in] ICAOffer *pOffer,[in] long cOffers);
  127.         [         id(2204),helpstring("method NotifyOfferRemoved")]         HRESULT NotifyOfferRemoved([in] ICAOffer *pOffer,[in] long cOffers);
  128.         [         id(2205),helpstring("method NotifyPolicyAdded")]          HRESULT NotifyPolicyAdded([in] ICAPolicy *pPolicy,[in] long cPolicies);
  129.         [         id(2206),helpstring("method NotifyPolicyRemoved")]        HRESULT NotifyPolicyRemoved([in] ICAPolicy *pPolicy,[in] long cPolicies);
  130.         [         id(2207),helpstring("method NotifyRequestDenialAdded")]   HRESULT NotifyRequestDenialAdded([in] ICARequest *pReq, [in] ICADenial *pDenial,[in] long cDenials);
  131.         [         id(2208),helpstring("method NotifyRequestDenialRemoved")] HRESULT NotifyRequestDenialRemoved([in] ICARequest *pReq, [in] ICADenial *pDenial,[in] long cDenials);
  132.         [         id(2209),helpstring("method NotifyDenialTollAdded")]      HRESULT NotifyDenialTollAdded([in] ICADenial *pDenial, [in] ICAToll *pToll, [in] long cTolls);
  133.         [         id(2210),helpstring("method NotifyDenialTollRemoved")]    HRESULT NotifyDenialTollRemoved([in] ICADenial *pDenial, [in] ICAToll *pToll, [in] long cTolls);
  134.         [         id(2211),helpstring("method NotifyTollDenialAdded")]      HRESULT NotifyTollDenialAdded([in] ICAToll *pToll, [in] ICADenial *pDenial,[in] long cDenials);
  135.         [         id(2212),helpstring("method NotifyTollDenialRemoved")]    HRESULT NotifyTollDenialRemoved([in] ICAToll *pToll, [in] ICADenial *pDenial,[in] long cDenials);
  136.         [         id(2213),helpstring("method NotifyOfferTollAdded")]       HRESULT NotifyOfferTollAdded([in] ICAOffer *pOffer, [in] ICAToll *pToll, [in] long cTolls);
  137.         [         id(2214),helpstring("method NotifyOfferTollRemoved")]     HRESULT NotifyOfferTollRemoved([in] ICAOffer *pOffer, [in] ICAToll *pToll, [in] long cTolls);
  138.         [         id(2215),helpstring("method NotifyTollStateChanged")]     HRESULT NotifyTollStateChanged([in] ICAToll *pToll, [in] CATollState enStateLast);
  139.         [         id(2216),helpstring("method NotifyDenialStateChanged")]   HRESULT NotifyDenialStateChanged([in] ICADenial *pDenial, [in] CADenialState enStateLast);
  140.         [         id(2217),helpstring("method NotifyComponentDenialAdded")]     HRESULT NotifyComponentDenialAdded([in] ICAComponent *pReq, [in] ICADenial *pDenial,[in] long cDenials);
  141.         [         id(2218),helpstring("method NotifyComponentDenialRemoved")]   HRESULT NotifyComponentDenialRemoved([in] ICAComponent *pReq, [in] ICADenial *pDenial,[in] long cDenials);
  142.  
  143.     };
  144.  
  145.     [
  146.         object,
  147.         uuid(11166302-DF8A-463a-B620-7BEC23542010),
  148.         dual,                                           // Helpers are Dual, IUnknown... so see from VB
  149.         hidden, restricted, 
  150.         helpstring("ICAManagerXProxy Interface"),
  151.         pointer_default(unique)
  152.     ]
  153.     interface ICAManagerXProxy : IUnknown
  154.     {
  155.         [propget, id(1),   helpstring("property PunkCAManagerProxy")]                   HRESULT PunkCAManagerProxy([out,retval] IUnknown **ppUnkCAManagerProxy);
  156.         [         id(2201),helpstring("method NotifyRequestActivated_XProxy")]          HRESULT NotifyRequestActivated_XProxy([in] ICARequest *pReq);
  157.         [         id(2202),helpstring("method NotifyRequestDeactivated_XProxy")]        HRESULT NotifyRequestDeactivated_XProxy([in] ICARequest *pReq);
  158.         [         id(2203),helpstring("method NotifyOfferAdded_XProxy")]                HRESULT NotifyOfferAdded_XProxy([in] ICAOffer *pOffer,[in] long cOffers);
  159.         [         id(2204),helpstring("method NotifyOfferRemoved_XProxy")]              HRESULT NotifyOfferRemoved_XProxy([in] ICAOffer *pOffer,[in] long cOffers);
  160.         [         id(2205),helpstring("method NotifyPolicyAdded_XProxy")]               HRESULT NotifyPolicyAdded_XProxy([in] ICAPolicy *pPolicy,[in] long cPolicies);
  161.         [         id(2206),helpstring("method NotifyPolicyRemoved_XProxy")]             HRESULT NotifyPolicyRemoved_XProxy([in] ICAPolicy *pPolicy,[in] long cPolicies);
  162.         [         id(2207),helpstring("method NotifyRequestDenialAdded_XProxy")]        HRESULT NotifyRequestDenialAdded_XProxy([in] ICARequest *pReq, [in] ICADenial *pDenial,[in] long cDenials);
  163.         [         id(2208),helpstring("method NotifyRequestDenialRemoved_XProxy")]      HRESULT NotifyRequestDenialRemoved_XProxy([in] ICARequest *pReq, [in] ICADenial *pDenial,[in] long cDenials);
  164.         [         id(2209),helpstring("method NotifyDenialTollAdded_XProxy")]           HRESULT NotifyDenialTollAdded_XProxy([in] ICADenial *pDenial, [in] ICAToll *pToll, [in] long cTolls);
  165.         [         id(2210),helpstring("method NotifyDenialTollRemoved_XProxy")]         HRESULT NotifyDenialTollRemoved_XProxy([in] ICADenial *pDenial, [in] ICAToll *pToll, [in] long cTolls);
  166.         [         id(2211),helpstring("method NotifyTollDenialAdded_XProxy")]           HRESULT NotifyTollDenialAdded_XProxy([in] ICAToll *pToll, [in] ICADenial *pDenial,[in] long cDenials);
  167.         [         id(2212),helpstring("method NotifyTollDenialRemoved_XProxy")]         HRESULT NotifyTollDenialRemoved_XProxy([in] ICAToll *pToll, [in] ICADenial *pDenial,[in] long cDenials);
  168.         [         id(2213),helpstring("method NotifyOfferTollAdded_XProxy")]            HRESULT NotifyOfferTollAdded_XProxy([in] ICAOffer *pOffer, [in] ICAToll *pToll, [in] long cTolls);
  169.         [         id(2214),helpstring("method NotifyOfferTollRemoved_XProxy")]          HRESULT NotifyOfferTollRemoved_XProxy([in] ICAOffer *pOffer, [in] ICAToll *pToll, [in] long cTolls);
  170.         [         id(2215),helpstring("method NotifyTollStateChanged_XProxy")]          HRESULT NotifyTollStateChanged_XProxy([in] ICAToll *pToll, [in] CATollState enStateLast);
  171.         [         id(2216),helpstring("method NotifyDenialStateChanged_XProxy")]        HRESULT NotifyDenialStateChanged_XProxy([in] ICADenial *pDenial, [in] CADenialState enStateLast);
  172.         [         id(2217),helpstring("method NotifyComponentDenialAdded_XProxy")]      HRESULT NotifyComponentDenialAdded_XProxy([in] ICAComponent *pReq, [in] ICADenial *pDenial,[in] long cDenials);
  173.         [         id(2218),helpstring("method NotifyComponentDenialRemoved_XProxy")]    HRESULT NotifyComponentDenialRemoved_XProxy([in] ICAComponent *pReq, [in] ICADenial *pDenial,[in] long cDenials);
  174.     };
  175.  
  176.             // ---------------------------------------------------------------
  177.  
  178.  
  179.             // ---------------------------------------------------------------
  180.  
  181.     [
  182.         object,
  183.         uuid(11166420-DF8A-463a-B620-7BEC23542010),
  184.         dual,
  185.         helpstring("ICAPolicies Interface"),
  186.         pointer_default(unique)
  187.     ]
  188.     interface ICAPolicies : IDispatch
  189.     {
  190.         [propget, id(DISPID_NEWENUM), restricted] HRESULT _NewEnum([out, retval] IUnknown **ppCollection);
  191.         [propget, id(COLLECTID_Count)]            HRESULT Count([out, retval] long *Count);
  192.         [propget, id(COLLECTID_Item)]             HRESULT Item([in] VARIANT Index, [out, retval] ICAPolicy **ppPolicy);
  193.         [         id(COLLECTID_Add)]              HRESULT Add([in] ICAPolicy *pPolicy);
  194.         [         id(COLLECTID_Remove)]           HRESULT Remove([in] VARIANT Index);
  195.     };
  196.  
  197.     [   object,
  198.         uuid(11166421-DF8A-463a-B620-7BEC23542010),
  199.         dual,
  200.         hidden, restricted, 
  201.         helpstring("ICAPoliciesInternal Interface"),
  202.         pointer_default(unique)
  203.     ]
  204.     interface ICAPoliciesInternal : IUnknown
  205.     {
  206.          [id(1),helpstring("method SetCAManager")]  HRESULT SetCAManager([in] ICAManager *pManager);
  207.          [id(2),helpstring("method CheckRequest")]  HRESULT CheckRequest([in] ICARequest *pReq);
  208.     };
  209.  
  210.             // ---------------------------------------------------------------
  211.  
  212.     [
  213.         object,
  214.         uuid(11166430-DF8A-463a-B620-7BEC23542010),
  215.         dual,
  216.         helpstring("ICATolls Interface"),
  217.         pointer_default(unique)
  218.     ]
  219.     interface ICATolls : IDispatch
  220.     {
  221.         [propget, id(DISPID_NEWENUM), restricted]   HRESULT _NewEnum([out, retval] IUnknown **ppCollection);
  222.         [propget, id(COLLECTID_Count)]              HRESULT Count([out, retval] long *Count);
  223.         [propget, id(COLLECTID_Item)]               HRESULT Item([in] VARIANT Index, [out, retval] ICAToll **ppToll);
  224.         [         id(COLLECTID_Add)]                HRESULT Add([in] ICAToll *pToll);
  225.         [         id(COLLECTID_Remove)]             HRESULT Remove([in] VARIANT Index);
  226.     };
  227.  
  228.     [
  229.         object,
  230.         uuid(11166431-DF8A-463a-B620-7BEC23542010),
  231.         dual,
  232.         hidden, restricted, 
  233.         helpstring("ICATolls Internal Interface"),
  234.         pointer_default(unique)
  235.     ]
  236.     interface ICATollsInternal : IUnknown           // workaround for not being able to get _ICAResDenialEvents to work
  237.     {               
  238.          [        id(1),helpstring("method SetCAManager")]                  HRESULT SetCAManager([in] ICAManager *pManager);
  239.          [        id(2),helpstring("method GetCAManager")]                  HRESULT GetCAManager([out] ICAManager **ppManager);
  240.          [        id(3),helpstring("method SetMustPersist")]                HRESULT SetMustPersist([in] BOOL fMustPersist);
  241.          [        id(4),helpstring("method Save")]                          HRESULT Save([in] IStorage *pstore,[in] BSTR bstrPrefix);
  242.          [        id(5),helpstring("method Load")]                          HRESULT Load([in] IStorage *pstore,[in] BSTR bstrPrefix);
  243.          [        id(6),helpstring("method NotifyStateChanged")]            HRESULT NotifyStateChanged([in] ICAToll *pToll, [in] CATollState enStateFrom);
  244.          [        id(7),helpstring("method NotifyTollSelectionChanged")]    HRESULT NotifyTollSelectionChanged([in] ICAToll *pToll, [in] BOOL fSelected);
  245.     };
  246.             // ---------------------------------------------------------------
  247.  
  248.  
  249.     [
  250.         object,
  251.         uuid(11166440-DF8A-463a-B620-7BEC23542010),
  252.         dual,
  253.         helpstring("ICADenials Interface"),
  254.         pointer_default(unique)
  255.     ]
  256.     interface ICADenials : IDispatch
  257.     {
  258.         [propget, id(DISPID_NEWENUM), restricted]                       HRESULT _NewEnum([out, retval] IUnknown **ppCollection);
  259.         [propget, id(COLLECTID_Count) ]                                 HRESULT Count([out, retval] long *Count);
  260.         [propget, id(COLLECTID_Item)]                                   HRESULT Item([in] VARIANT Index, [out, retval] ICADenial **ppDenial);
  261.         [propget, id(COLLECTID_AddNew), helpstring("property AddNew")]  HRESULT AddNew([in] ICAPolicy *ppolicy, [in] BSTR bstrShortDesc, [in] IUnknown *pUnkDeniedObject, [in] long enDenialState, [out, retval] ICADenial **ppDenial);
  262.         [         id(COLLECTID_Remove)]                                 HRESULT Remove([in] VARIANT Index);
  263.         [propget, id(COLLECTID_CountDenied)]                            HRESULT CountDenied([out, retval] long *Count);
  264.         [propget, id(COLLECTID_CountSelected)]                          HRESULT CountSelected([out, retval] long *Count);
  265.         [         id(COLLECTID_PaySelectedTolls)]                       HRESULT PaySelectedTolls();
  266.     };
  267.  
  268.     [
  269.         object,
  270.         uuid(11166441-DF8A-463a-B620-7BEC23542010),
  271.         dual,
  272.         hidden, restricted, 
  273.         helpstring("ICADenialsInternal Interface"),
  274.         pointer_default(unique)
  275.     ]
  276.     interface ICADenialsInternal : IUnknown
  277.     {
  278.         [  id(1),helpstring("method SetCAManager")]             HRESULT SetCAManager([in] ICAManager *pManager);        
  279.         [  id(2),helpstring("method NotifyDenialStateChanged")] HRESULT NotifyDenialStateChanged([in] ICADenial *pDenial, [in] CADenialState enStateLast);
  280.     };
  281.  
  282.  
  283.             // ---------------------------------------------------------------
  284.  
  285.     [
  286.         object,
  287.         uuid(11166450-DF8A-463a-B620-7BEC23542010),
  288.         dual,
  289.         helpstring("ICAOffers Interface"),
  290.         pointer_default(unique)
  291.     ]
  292.     interface ICAOffers : IDispatch
  293.     {
  294.         [propget, id(DISPID_NEWENUM) , restricted]                      HRESULT _NewEnum([out, retval] IUnknown **ppCollection);
  295.         [propget, id(COLLECTID_Count)]                                  HRESULT Count([out, retval] long *Count);
  296.         [propget, id(COLLECTID_Item)]                                   HRESULT Item([in] VARIANT Index, [out, retval] ICAOffer **ppOffer);
  297.         [propget, id(COLLECTID_AddNew), helpstring("property AddNew")]  HRESULT AddNew([in] ICAPolicy *pPolicy, [in] BSTR bstrName, [in] DATE dateStart, [in] DATE dateEnd, [out, retval] ICAOffer **ppOffer);
  298.         [         id(COLLECTID_Remove)]                                 HRESULT Remove([in] VARIANT Index);
  299.     };
  300.  
  301.     [
  302.         object,
  303.         uuid(11166470-DF8A-463a-B620-7BEC23542010),
  304.         dual,
  305.         helpstring("ICAComponents Interface"),
  306.         pointer_default(unique)
  307.     ]
  308.     interface ICAComponents : IDispatch
  309.     {
  310.         [propget, id(DISPID_NEWENUM) , restricted]                      HRESULT _NewEnum([out, retval] IUnknown **ppCollection);
  311.         [propget, id(COLLECTID_Count)]                                  HRESULT Count([out, retval] long *Count);
  312.         [propget, id(COLLECTID_Item)]                                   HRESULT Item([in] VARIANT Index, [out, retval] ICAComponent **ppComponent);
  313.   //      [       id(COLLECTID_Add)]                                    HRESULT Add([in] ICAComponent *pComponent);
  314.   //      [       id(COLLECTID_Remove)]                                 HRESULT Remove([in] VARIANT Index);
  315.     };
  316.  
  317.  
  318.     [
  319.         object,
  320.         uuid(11166361-DF8A-463a-B620-7BEC23542010),
  321.         dual,
  322.         hidden,
  323.         helpstring("ICAComponentInternal Interface"),
  324.         pointer_default(unique)
  325.     ]
  326.     interface ICAComponentInternal : IUnknown
  327.     {
  328.         [         id(1), helpstring("method RemoveAllDenials")] HRESULT RemoveAllDenials();
  329.         [propget, id(2), helpstring("property Description")]    HRESULT Description([in] CADescFormat enFormat, [out, retval] BSTR *pbstrDescription);
  330.     };
  331.             // ---------------------------------------------------------------
  332.  
  333.  
  334.   [
  335.           object,
  336.           uuid(860A3FE2-DED1-40E2-896C-057681A8A1A8),
  337.           dual,
  338.           helpstring("ICADefaultDlg Interface"),
  339.           pointer_default(unique)
  340.   ]
  341.   interface ICADefaultDlg : IDispatch
  342.   {
  343.           [propput, id(DISPID_AUTOSIZE)]
  344.           HRESULT AutoSize([in]VARIANT_BOOL vbool);
  345.           [propget, id(DISPID_AUTOSIZE)]
  346.           HRESULT AutoSize([out,retval]VARIANT_BOOL* pbool);
  347.           [propput, id(DISPID_BACKCOLOR)]
  348.           HRESULT BackColor([in]OLE_COLOR clr);
  349.           [propget, id(DISPID_BACKCOLOR)]
  350.           HRESULT BackColor([out,retval]OLE_COLOR* pclr);
  351.           [propput, id(DISPID_BACKSTYLE)]
  352.           HRESULT BackStyle([in]long style);
  353.           [propget, id(DISPID_BACKSTYLE)]
  354.           HRESULT BackStyle([out,retval]long* pstyle);
  355.           [propput, id(DISPID_BORDERCOLOR)]
  356.           HRESULT BorderColor([in]OLE_COLOR clr);
  357.           [propget, id(DISPID_BORDERCOLOR)]
  358.           HRESULT BorderColor([out, retval]OLE_COLOR* pclr);
  359.           [propput, id(DISPID_BORDERSTYLE)]
  360.           HRESULT BorderStyle([in]long style);
  361.           [propget, id(DISPID_BORDERSTYLE)]
  362.           HRESULT BorderStyle([out, retval]long* pstyle);
  363.           [propput, id(DISPID_BORDERWIDTH)]
  364.           HRESULT BorderWidth([in]long width);
  365.           [propget, id(DISPID_BORDERWIDTH)]
  366.           HRESULT BorderWidth([out, retval]long* width);
  367.           [propput, id(DISPID_DRAWMODE)]
  368.           HRESULT DrawMode([in]long mode);
  369.           [propget, id(DISPID_DRAWMODE)]
  370.           HRESULT DrawMode([out, retval]long* pmode);
  371.           [propput, id(DISPID_DRAWSTYLE)]
  372.           HRESULT DrawStyle([in]long style);
  373.           [propget, id(DISPID_DRAWSTYLE)]
  374.           HRESULT DrawStyle([out, retval]long* pstyle);
  375.           [propput, id(DISPID_DRAWWIDTH)]
  376.           HRESULT DrawWidth([in]long width);
  377.           [propget, id(DISPID_DRAWWIDTH)]
  378.           HRESULT DrawWidth([out, retval]long* pwidth);
  379.           [propput, id(DISPID_FILLCOLOR)]
  380.           HRESULT FillColor([in]OLE_COLOR clr);
  381.           [propget, id(DISPID_FILLCOLOR)]
  382.           HRESULT FillColor([out, retval]OLE_COLOR* pclr);
  383.           [propput, id(DISPID_FILLSTYLE)]
  384.           HRESULT FillStyle([in]long style);
  385.           [propget, id(DISPID_FILLSTYLE)]
  386.           HRESULT FillStyle([out, retval]long* pstyle);
  387.           [propputref, id(DISPID_FONT)]
  388.           HRESULT Font([in]IFontDisp* pFont);
  389.           [propput, id(DISPID_FONT)]
  390.           HRESULT Font([in]IFontDisp* pFont);
  391.           [propget, id(DISPID_FONT)]
  392.           HRESULT Font([out, retval]IFontDisp** ppFont);
  393.           [propput, id(DISPID_FORECOLOR)]
  394.           HRESULT ForeColor([in]OLE_COLOR clr);
  395.           [propget, id(DISPID_FORECOLOR)]
  396.           HRESULT ForeColor([out,retval]OLE_COLOR* pclr);
  397.           [propput, id(DISPID_ENABLED)]
  398.           HRESULT Enabled([in]VARIANT_BOOL vbool);
  399.           [propget, id(DISPID_ENABLED)]
  400.           HRESULT Enabled([out,retval]VARIANT_BOOL* pbool);
  401.           [propget, id(DISPID_HWND)]
  402.           HRESULT Window([out, retval]LONG_PTR* phwnd);         // was long* via the wizard, but doesn't compile Win64
  403.           [propput, id(DISPID_TABSTOP)]
  404.           HRESULT TabStop([in]VARIANT_BOOL vbool);
  405.           [propget, id(DISPID_TABSTOP)]
  406.           HRESULT TabStop([out, retval]VARIANT_BOOL* pbool);
  407.           [propput, id(DISPID_TEXT)]
  408.           HRESULT Text([in]BSTR strText);
  409.           [propget, id(DISPID_TEXT)]
  410.           HRESULT Text([out, retval]BSTR* pstrText);
  411.           [propput, id(DISPID_CAPTION)]
  412.           HRESULT Caption([in]BSTR strCaption);
  413.           [propget, id(DISPID_CAPTION)]
  414.           HRESULT Caption([out,retval]BSTR* pstrCaption);
  415.           [propput, id(DISPID_BORDERVISIBLE)]
  416.           HRESULT BorderVisible([in]VARIANT_BOOL vbool);
  417.           [propget, id(DISPID_BORDERVISIBLE)]
  418.           HRESULT BorderVisible([out, retval]VARIANT_BOOL* pbool);
  419.           [propput, id(DISPID_APPEARANCE)]
  420.           HRESULT Appearance([in]short appearance);
  421.           [propget, id(DISPID_APPEARANCE)]
  422.           HRESULT Appearance([out, retval]short* pappearance);
  423.           [propput, id(DISPID_MOUSEPOINTER)]
  424.           HRESULT MousePointer([in]long pointer);
  425.           [propget, id(DISPID_MOUSEPOINTER)]
  426.           HRESULT MousePointer([out, retval]long* ppointer);
  427.           [propputref, id(DISPID_MOUSEICON)]
  428.           HRESULT MouseIcon([in]IPictureDisp* pMouseIcon);
  429.           [propput, id(DISPID_MOUSEICON)]
  430.           HRESULT MouseIcon([in]IPictureDisp* pMouseIcon);
  431.           [propget, id(DISPID_MOUSEICON)]
  432.           HRESULT MouseIcon([out, retval]IPictureDisp** ppMouseIcon);
  433.           [propputref, id(DISPID_PICTURE)]
  434.           HRESULT Picture([in]IPictureDisp* pPicture);
  435.           [propput, id(DISPID_PICTURE)]
  436.           HRESULT Picture([in]IPictureDisp* pPicture);
  437.           [propget, id(DISPID_PICTURE)]
  438.           HRESULT Picture([out, retval]IPictureDisp** ppPicture);
  439.           [propput, id(DISPID_VALID)]
  440.           HRESULT Valid([in]VARIANT_BOOL vbool);
  441.           [propget, id(DISPID_VALID)]
  442.           HRESULT Valid([out, retval]VARIANT_BOOL* pbool);
  443.   };
  444.             // ---------------------------------------------------------------
  445.  
  446. [
  447.     uuid(11166000-DF8A-463a-B620-7BEC23542010),
  448.     version(1.0),
  449.     helpstring("Microsoft TV CA Type Library")
  450. ]
  451. library MSTvCALib
  452. {
  453.     importlib("stdole32.tlb");
  454.     importlib("stdole2.tlb");
  455.  
  456. // ---------------------------------------------------
  457. //          CAUTION - if Change events below, need to perform:
  458. //                  1) compile the MIDL file to generate the typelib
  459. //                  2) In VCC class view, <xxx>->Implement Connection Point (_ICA<xxx>Events)
  460. //                        to regenerate the  CProxy_ICA<xxx>Events<> code.  
  461. //                        Need to browse to objd\i386 directory and select MSTvCA.tlb
  462. //                  (The file MSTvCACP.h must be checked out.)  
  463. //                  Where <xxx> is Denials, Manager, Offers, Policies, Request, and Tolls
  464.  
  465.     [
  466.         uuid(11166298-DF8A-463A-B620-7BEC23542010),
  467.         helpstring("_ICAResDenialTreeEvents Interface")
  468.     ]
  469.     dispinterface _ICAResDenialTreeEvents
  470.     {
  471.         properties:
  472.         methods:
  473.         [id(1),helpstring("method PaidTollSelected")]           HRESULT PaidTollSelected([in] ICAToll *pToll, [in] long fSelected);
  474.     };
  475.  
  476.  
  477.     [
  478.         uuid(11166200-DF8A-463A-B620-7BEC23542010),
  479.         helpstring("ICAManagerEvents Interface")
  480.     ]
  481.     dispinterface _ICAManagerEvents
  482.     {
  483.         properties:
  484.         methods:
  485.         [id(2201),helpstring("method RequestActivated")]        HRESULT RequestActivated([in] ICARequest *pReq);
  486.         [id(2202),helpstring("method RequestDeactivated")]      HRESULT RequestDeactivated([in] ICARequest *pReq);
  487.         [id(2203),helpstring("method OfferAdded")]              HRESULT OfferAdded([in] ICAOffer *pOffer,[in] long cOffers);
  488.         [id(2204),helpstring("method OfferRemoved")]            HRESULT OfferRemoved([in] ICAOffer *pOffer,[in] long cOffers);
  489.         [id(2205),helpstring("method PolicyAdded")]             HRESULT PolicyAdded([in] ICAPolicy *pPolicy,[in] long cPolicies);
  490.         [id(2206),helpstring("method PolicyRemoved")]           HRESULT PolicyRemoved([in] ICAPolicy *pPolicy,[in] long cPolicies);
  491.         [id(2207),helpstring("method RequestDenialAdded")]      HRESULT RequestDenialAdded([in] ICARequest *pReq, [in] ICADenial *pDenial,[in] long cDenials);
  492.         [id(2208),helpstring("method RequestDenialRemoved")]    HRESULT RequestDenialRemoved([in] ICARequest *pReq, [in] ICADenial *pDenial,[in] long cDenials);
  493.         [id(2209),helpstring("method DenialTollAdded")]         HRESULT DenialTollAdded([in] ICADenial *pDenial, [in] ICAToll *pToll, [in] long cTolls);
  494.         [id(2210),helpstring("method DenialTollRemoved")]       HRESULT DenialTollRemoved([in] ICADenial *pDenial, [in] ICAToll *pToll, [in] long cTolls);
  495.         [id(2211),helpstring("method TollDenialAdded")]         HRESULT TollDenialAdded([in] ICAToll *pToll, [in] ICADenial *pDenial,[in] long cDenials);
  496.         [id(2212),helpstring("method TollDenialRemoved")]       HRESULT TollDenialRemoved([in] ICAToll *pToll, [in] ICADenial *pDenial,[in] long cDenials);
  497.         [id(2213),helpstring("method OfferTollAdded")]          HRESULT OfferTollAdded([in] ICAOffer *pOffer, [in] ICAToll *pToll, [in] long cTolls);
  498.         [id(2214),helpstring("method OfferTollRemoved")]        HRESULT OfferTollRemoved([in] ICAOffer *pOffer, [in] ICAToll *pToll, [in] long cTolls);
  499.         [id(2215),helpstring("method TollStateChanged")]        HRESULT TollStateChanged([in] ICAToll *pToll, [in] CATollState enState);
  500.         [id(2216),helpstring("method DenialStateChanged")]      HRESULT DenialStateChanged([in] ICADenial *pDenial, [in] CADenialState enState);
  501.         [id(2217),helpstring("method ComponentDenialAdded")]    HRESULT ComponentDenialAdded([in] ICAComponent *pComp, [in] ICADenial *pDenial,[in] long cDenials);
  502.         [id(2218),helpstring("method ComponentDenialRemoved")]  HRESULT ComponentDenialRemoved([in] ICAComponent *pComp, [in] ICADenial *pDenial,[in] long cDenials);
  503.     };
  504.  
  505.     [
  506.         uuid(11166210-DF8A-463A-B620-7BEC23542010),
  507.         helpstring("ICARequestEvents Interface")
  508.     ]
  509.     dispinterface _ICARequestEvents
  510.     {
  511.         properties:
  512.         methods:
  513.         [id(1), helpstring("method CheckStarted")]  HRESULT CheckStarted([in] ICARequest *pRequest);
  514.         [id(2), helpstring("method CheckComplete")] HRESULT CheckComplete([in] ICARequest *pRequest,[in] long cDenials);
  515.     };
  516.     [
  517.         uuid(11166220-DF8A-463A-B620-7BEC23542010),
  518.         helpstring("_ICAPoliciesEvents Interface")
  519.     ]
  520.     dispinterface _ICAPoliciesEvents
  521.     {
  522.         properties:
  523.         methods:
  524.         [id(1), helpstring("method ItemAdded")]   HRESULT ItemAdded([in] ICAPolicy *pPolicy, long cPolicies);
  525.         [id(2), helpstring("method ItemRemoved")] HRESULT ItemRemoved([in] ICAPolicy *pPolicy, long cPolicies);
  526.     };
  527.  
  528.     [
  529.         uuid(11166230-DF8A-463A-B620-7BEC23542010),
  530.         helpstring("ICATollsEvents Interface")
  531.     ]
  532.     dispinterface _ICATollsEvents
  533.     {
  534.         properties:
  535.         methods:
  536.         [id(1), helpstring("method ItemAdded")]     HRESULT ItemAdded([in] ICAToll *pToll, [in] long cTolls);
  537.         [id(2), helpstring("method ItemRemoved")]   HRESULT ItemRemoved([in] ICAToll *pToll, [in] long cTolls);
  538.         [id(3), helpstring("method StateChanged")]  HRESULT StateChanged([in] ICAToll *pToll, [in] CATollState enStateFrom);
  539.     };
  540.  
  541.  
  542.     [
  543.         uuid(11166240-DF8A-463A-B620-7BEC23542010),
  544.         helpstring("ICADenialsEvents Interface")
  545.     ]
  546.     dispinterface _ICADenialsEvents
  547.     {
  548.         properties:
  549.         methods:
  550.         [id(1), helpstring("method ItemAdded")]     HRESULT ItemAdded([in] ICADenial *pDenial, [in] long cDenials);
  551.         [id(2), helpstring("method ItemRemoved")]   HRESULT ItemRemoved([in] ICADenial *pDenial, [in] long cDenials);
  552.         [id(3), helpstring("method StateChanged")]  HRESULT StateChanged([in] ICADenial *pDenial, [in] CADenialState enStateFrom);
  553.     };
  554.  
  555.     [
  556.         uuid(11166250-DF8A-463A-B620-7BEC23542010),
  557.         helpstring("ICAOffersEvents Interface")
  558.     ]
  559.     dispinterface _ICAOffersEvents
  560.     {
  561.         properties:
  562.         methods:
  563.         [id(1), helpstring("method ItemAdded")]     HRESULT ItemAdded([in] ICAOffer *pOffer, [in] long cOffers);
  564.         [id(2), helpstring("method ItemRemoved")]   HRESULT ItemRemoved([in] ICAOffer *pOffer, [in] long cOffers);
  565.     };
  566.  
  567.     [
  568.         uuid(11166260-DF8A-463A-B620-7BEC23542010),
  569.         helpstring("_ICAComponentsEvents Interface")
  570.     ]
  571.     dispinterface _ICAComponentsEvents
  572.     {
  573.         properties:
  574.         methods:
  575.         [id(1), helpstring("method ItemAdded")]     HRESULT ItemAdded([in] ICAComponent *pComponent, [in] long cComponent);
  576.         [id(2), helpstring("method ItemRemoved")]   HRESULT ItemRemoved([in] ICAComponent *pComponent, [in] long cComponent);
  577.     };      // --------------------------------
  578.     [
  579.         object,
  580.         dual,
  581.         uuid(11166300-DF8A-463a-B620-7BEC23542010),
  582.         helpstring("ICAManager Interface"),
  583.         pointer_default(unique)
  584.     ]
  585.     interface ICAManager : IDispatch
  586.     {
  587.         [propget, id(1),   helpstring("property Policies")]         HRESULT Policies([out, retval] ICAPolicies **ppPolicies);
  588.         [propget, id(2),   helpstring("property ActiveRequest")]    HRESULT ActiveRequest([out, retval] ICARequest **ppRequest);
  589.         [propget, id(3),   helpstring("property Offers")]           HRESULT Offers([out, retval] ICAOffers **ppOffers);
  590.         [propget, id(4),   helpstring("property PaidTolls")]        HRESULT PaidTolls([out, retval] ICATolls **ppTolls);
  591.         [propput, id(5),   helpstring("property UseDefaultUI")]     HRESULT UseDefaultUI([in] long fUseDefaultUI);
  592.         [propget, id(5),   helpstring("property UseDefaultUI")]     HRESULT UseDefaultUI([out, retval] long *pfUseDefaultUI);
  593.         [propget, id(6),   helpstring("property DenialsFor")]       HRESULT DenialsFor([in] IUnknown *pUnk, [out, retval] ICADenials **ppDenials);
  594.     };
  595.     
  596.     [
  597.         object,
  598.         uuid(11166310-DF8A-463a-B620-7BEC23542010),
  599.         dual,
  600.         helpstring("ICARequest Interface"),
  601.         pointer_default(unique)
  602.     ]
  603.     interface ICARequest : IDispatch
  604.     {
  605.         [propget, id(1), helpstring("property RequestedItem")]      HRESULT RequestedItem([out, retval] IUnknown **ppTunereq);
  606.         [propget, id(2), helpstring("property CAManager")]          HRESULT CAManager([out, retval] ICAManager **ppManager);
  607.         [propget, id(3), helpstring("property ScheduleEntry")]      HRESULT ScheduleEntry([out, retval] IUnknown **ppUnkScheduleEntry); // IScheduleEntry?
  608.         [propget, id(4), helpstring("property Denials")]            HRESULT Denials([out, retval] ICADenials **ppDenials);
  609.         [propget, id(5), helpstring("property Components")]         HRESULT Components([out, retval] ICAComponents **pComponents);
  610.         [propget, id(6), helpstring("property Check")]              HRESULT Check([out, retval] long *pcDenials);
  611.         [propget, id(7), helpstring("property ResolveDenials")]     HRESULT ResolveDenials([out, retval] long *pcDenials);
  612.         [propget, id(8), helpstring("property CountDeniedComponents")]  HRESULT CountDeniedComponents([out, retval] long *pcDeniedComponents);
  613.     };
  614.  
  615.     [
  616.         object,
  617.         uuid(11166320-DF8A-463a-B620-7BEC23542010),
  618.         helpstring("ICAPolicy Interface"),              // client written
  619.         pointer_default(unique)
  620.     ]
  621.     interface ICAPolicy : IUnknown  // -- not IDispatch, let the client side implement that interface
  622.     {
  623.         [propget, id(0),   helpstring("property Name")]             HRESULT Name([out, retval] BSTR *pbstr);
  624.         [         id(1),   helpstring("method CheckRequest")]       HRESULT CheckRequest([in] ICARequest *pReq);
  625. //      [propget, id(2),   helpstring("property CAManager")]        HRESULT CAManager([out, retval] ICAManager **ppManager);
  626.         [propput, id(2),   helpstring("property CAManager")]        HRESULT CAManager([in] ICAManager *pManager);
  627.         [propget, id(3),   helpstring("property OkToPersist")]      HRESULT OkToPersist([out, retval] BOOL *pfOkToPersist);
  628.         [propget, id(4),   helpstring("property OkToRemove")]       HRESULT OkToRemove([out, retval] BOOL *pfOkToRemove);
  629.         [propget, id(5),   helpstring("property OkToRemoveDenial")] HRESULT OkToRemoveDenial(ICADenial *pDenial, [out, retval] BOOL *pfOk);
  630.         [propget, id(6),   helpstring("property OkToRemoveOffer")]  HRESULT OkToRemoveOffer(ICAOffer *pOffer, [out, retval] BOOL *pfOk);
  631.     }
  632.  
  633.     [
  634.         object,
  635.         uuid(11166330-DF8A-463a-B620-7BEC23542010),
  636.         dual,
  637.         helpstring("ICAToll Interface"),                // also client written
  638.         pointer_default(unique)
  639.     ]
  640.     interface ICAToll : IUnknown    // -- also not IDispatch - client side implements that interface
  641.     {
  642. //      [propget, id(1), helpstring("property CAManager")]      HRESULT CAManager([out, retval] ICAManager **ppManager);
  643.         [propput, id(1), helpstring("property CAManager")]      HRESULT CAManager([in] ICAManager *pManager);
  644.         [         id(2), helpstring("method Select")]           HRESULT Select([in] BOOL fSelect);
  645.         [         id(3), helpstring("method PayToll")]          HRESULT PayToll();
  646.         [propget, id(4), helpstring("property Refundable")]     HRESULT Refundable([out, retval] BOOL *pfRefundable);
  647.         [         id(5), helpstring("method RefundToll")]       HRESULT RefundToll();
  648.         [propget, id(6), helpstring("property TolledObject")]   HRESULT TolledObject([out, retval] IUnknown **ppUnkTolled);
  649.         [propget, id(7), helpstring("property Denials")]        HRESULT Denials([out, retval] ICADenials **ppDenials);
  650.         [propget, id(8), helpstring("property Policy")]         HRESULT Policy([out, retval] ICAPolicy **ppPolicy);
  651.         [propget, id(9), helpstring("property Description")]    HRESULT Description([in] CADescFormat enFormat, [out, retval] BSTR *pbstr);
  652.         [propget, id(10),helpstring("property TimePaid")]       HRESULT TimePaid([out, retval] DATE *pdtPaid);
  653.         [propget, id(11),helpstring("property State")]          HRESULT State([out, retval] CATollState *penState);
  654.     };
  655.  
  656.     [
  657.         object,
  658.         uuid(11166340-DF8A-463a-B620-7BEC23542010),
  659.         dual,
  660.         helpstring("ICADenial Interface"),
  661.         pointer_default(unique)
  662.     ]
  663.     interface ICADenial : IDispatch
  664.     {
  665.         [propget, id(1), helpstring("property DeniedObject")]   HRESULT DeniedObject([out, retval] IUnknown **ppUnkDenied);
  666.         [propget, id(2), helpstring("property Policy")]         HRESULT Policy([out, retval] ICAPolicy **ppPolicy);
  667.         [propget, id(3), helpstring("property Description")]    HRESULT Description([in] CADescFormat enFormat, [out, retval] BSTR *pbstr);
  668.         [propput, id(3), helpstring("property Description")]    HRESULT Description([in] CADescFormat enFormat, [in] BSTR bstr);
  669.         [propget, id(4), helpstring("property State")]          HRESULT State([out, retval] CADenialState *penState);
  670.         [propput, id(4), helpstring("property State")]          HRESULT State([in] CADenialState enState);
  671.         [propget, id(5), helpstring("property Tolls")]          HRESULT Tolls([out, retval] ICATolls **ppTolls);
  672.         [         id(6),   helpstring("method NotifyTollStateChanged")]     HRESULT NotifyTollStateChanged([in] ICAToll *pToll, [in] CATollState enStateFrom);
  673.     };
  674.     
  675.     [
  676.         object,
  677.         uuid(11166350-DF8A-463a-B620-7BEC23542010),
  678.         dual,
  679.         helpstring("ICAOffer Interface"),
  680.         pointer_default(unique)
  681.     ]
  682.     interface ICAOffer : IDispatch
  683.     {
  684.         [propget, id(1), helpstring("property CAManager")]      HRESULT CAManager([out, retval] ICAManager **ppManager);
  685.         [propput, id(1), helpstring("property CAManager")]      HRESULT CAManager([in] ICAManager *pManager);
  686.         [propget, id(2), helpstring("property Policy")]         HRESULT Policy([out, retval] ICAPolicy **pppolicy);
  687.         [propget, id(3), helpstring("property Description")]    HRESULT Description([in] CADescFormat enFormat, [out, retval] BSTR *pbstr);
  688.         [propput, id(3), helpstring("property Description")]    HRESULT Description([in] CADescFormat enFormat, [in] BSTR bstr);
  689.         [propget, id(4), helpstring("property StartTime")]      HRESULT StartTime([out, retval] DATE *pdtStart);
  690.         [propget, id(5), helpstring("property EndTime")]        HRESULT EndTime([out, retval] DATE *pdtEnd);
  691.         [propget, id(6), helpstring("property Tolls")]          HRESULT Tolls([out, retval] ICATolls **ppTolls);
  692.         [         id(7), helpstring("method NotifyTollStateChanged")]       HRESULT NotifyTollStateChanged([in] ICAToll *pToll, [in] CATollState enStateFrom);
  693.     };
  694.  
  695.     [
  696.         object,
  697.         uuid(11166360-DF8A-463a-B620-7BEC23542010),
  698.         dual,
  699.         helpstring("ICAComponent Interface"),
  700.         pointer_default(unique)
  701.     ]
  702.     interface ICAComponent : IDispatch
  703.     {
  704.         [propget, id(1), helpstring("property Component")]      HRESULT Component([out, retval] IComponent **ppComponent);
  705.         [propget, id(2), helpstring("property Denials")]        HRESULT Denials([out, retval] ICADenials **ppDenials);
  706.         [propget, id(3), helpstring("property Request")]        HRESULT Request([out, retval] ICARequest **ppComponent);
  707.     };
  708.  
  709.         // --------------------------------
  710.  
  711.     [
  712.         uuid(11166100-DF8A-463a-B620-7BEC23542010),
  713.         helpstring("CAManager Class")
  714.     ]
  715.     coclass CAManager
  716.     {
  717.         [default] interface ICAManager;
  718.         interface ICAManagerInternal;
  719. //      interface ICAManagerXProxy;                             // this is the actual outgoing 'event' interface
  720.         [default, source] dispinterface _ICAManagerEvents;
  721.     };
  722.  
  723.     [               // magic class used to avoid circular references through the CAManager.
  724.         hidden,
  725.         uuid(11166101-DF8A-463a-B620-7BEC23542010),
  726.         helpstring("CAManagerProxy Class")
  727.     ]
  728.     coclass CAManagerProxy
  729.     {
  730.         [default] interface ICAManager;
  731.         interface ICAManagerInternal;
  732. //      [default, source] dispinterface _ICAManagerEvents;  /// QUESTION ??? DO I want these just here, or in the true Manager, or both?
  733.     };
  734.  
  735.     [
  736.         uuid(11166540-DF8A-463a-B620-7BEC23542010),         // needed for user's tolls.
  737.         helpstring("CADenials Class")
  738.     ]
  739.     coclass CADenials
  740.     {
  741.         [default] interface ICADenials;
  742.         interface ICADenialsInternal;
  743.         [default, source] dispinterface _ICADenialsEvents;
  744.     };
  745.     
  746.                         // TODO - mark this as hidden...
  747.     [
  748.         uuid(11166550-DF8A-463a-B620-7BEC23542010),
  749.         helpstring("CAOffer Class")
  750.     ]
  751.     coclass CAOffer
  752.     {
  753.         [default] interface ICAOffer;
  754.     }; 
  755.  
  756.  
  757. /*  [
  758.         uuid(11166999-DF8A-463a-B620-7BEC23542010),
  759.         helpstring("CATempEvent_TempBuilder Class - used so we can build events the first time")
  760.     ]
  761.     coclass CATempEvent_TempBuilder
  762.     {
  763.         [source] dispinterface _ICAResDenialTreeEvents;
  764.         [source] dispinterface _ICAManagerEvents;
  765.         [source] dispinterface _ICARequestEvents;
  766.         [source] dispinterface _ICATollsEvents;
  767.         [source] dispinterface _ICADenialsEvents;
  768.         [source] dispinterface _ICAPoliciesEvents;
  769.         [source] dispinterface _ICAOffersEvents;
  770.         [source] dispinterface _ICAComponentsEvents;
  771.     };
  772. */
  773.             // -----------------------------------
  774.     [
  775.         object,
  776.         uuid(11166898-DF8A-463a-B620-7BEC23542010),
  777.         dual,
  778.         helpstring("ICAResDenialTree Interface"),
  779.         pointer_default(unique)
  780.     ]
  781.     interface ICAResDenialTree : IDispatch
  782.     {
  783.         [propget, id(1),   helpstring("property CAManager")]                    HRESULT CAManager([out, retval] ICAManager **ppCAManager);
  784.         [propput, id(1),   helpstring("property CAManager")]                    HRESULT CAManager([in] ICAManager *pCAManager);
  785.         [propget, id(2),   helpstring("property DisplayFields")]                HRESULT DisplayFields([out, retval] long *penFields);   // fields to display in default ResDenial UI
  786.         [propput, id(2),   helpstring("property DisplayFields")]                HRESULT DisplayFields([in] long enFields);              // fields to display in default ResDenial UI
  787.         [         id(3),   helpstring("method UpdateView")]                     HRESULT UpdateView([in] IUnknown *pUnk);                // if object is being viewed, updates it.
  788.                   // ResDenial control listens to these incoming sink events sent by Manager ((_ICAManagerEvents).. ID's Must match 
  789.         [         id(2201),helpstring("method NotifyRequestActivated")]         HRESULT NotifyRequestActivated([in] ICARequest *preq);
  790.         [         id(2202),helpstring("method NotifyRequestDeactivated")]       HRESULT NotifyRequestDeactivated([in] ICARequest *preq);
  791.         [         id(2203),helpstring("method NotifyOfferAdded")]               HRESULT NotifyOfferAdded([in] ICAOffer *pOffer,[in] long cOffers);
  792.         [         id(2204),helpstring("method NotifyOfferRemoved")]             HRESULT NotifyOfferRemoved([in] ICAOffer *pOffer,[in] long cOffers);
  793.         [         id(2205),helpstring("method NotifyPolicyAdded")]              HRESULT NotifyPolicyAdded([in] ICAPolicy *pPolicy,[in] long cPolicies);
  794.         [         id(2206),helpstring("method NotifyPolicyRemoved")]            HRESULT NotifyPolicyRemoved([in] ICAPolicy *pPolicy,[in] long cPolicies);
  795.         [         id(2207),helpstring("method NotifyRequestDenialAdded")]       HRESULT NotifyRequestDenialAdded([in] ICARequest *preq, [in] ICADenial *pDenial,[in] long cDenials);
  796.         [         id(2208),helpstring("method NotifyRequestDenialRemoved")]     HRESULT NotifyRequestDenialRemoved([in] ICARequest *preq, [in] ICADenial *pDenial,[in] long cDenials);
  797.         [         id(2209),helpstring("method NotifyDenialTollAdded")]          HRESULT NotifyDenialTollAdded([in] ICADenial *pDenial, [in] ICAToll *pToll, [in] long cTolls);
  798.         [         id(2210),helpstring("method NotifyDenialTollRemoved")]        HRESULT NotifyDenialTollRemoved([in] ICADenial *pDenial, [in] ICAToll *pToll, [in] long cTolls);
  799.         [         id(2211),helpstring("method NotifyTollDenialAdded")]          HRESULT NotifyTollDenialAdded([in] ICAToll *pToll, [in] ICADenial *pDenial,[in] long cDenials);
  800.         [         id(2212),helpstring("method NotifyTollDenialRemoved")]        HRESULT NotifyTollDenialRemoved([in] ICAToll *pToll, [in] ICADenial *pDenial,[in] long cDenials);
  801.         [         id(2213),helpstring("method NotifyOfferTollAdded")]           HRESULT NotifyOfferTollAdded([in] ICAOffer *pOffer, [in] ICAToll *pToll, [in] long cTolls);
  802.         [         id(2214),helpstring("method NotifyOfferTollRemoved")]         HRESULT NotifyOfferTollRemoved([in] ICAOffer *pOffer, [in] ICAToll *pToll, [in] long cTolls);
  803.         [         id(2215),helpstring("method NotifyTollStateChanged")]         HRESULT NotifyTollStateChanged([in] ICAToll *pToll, [in] CATollState enStateLast);
  804.         [         id(2216),helpstring("method NotifyDenialStateChanged")]       HRESULT NotifyDenialStateChanged([in] ICADenial *pDenial, [in] CADenialState enStateLast);
  805.         [         id(2217),helpstring("method NotifyComponentDenialAdded")]     HRESULT NotifyComponentDenialAdded([in] ICAComponent *preq, [in] ICADenial *pDenial,[in] long cDenials);
  806.         [         id(2218),helpstring("method NotifyComponentDenialRemoved")]   HRESULT NotifyComponentDenialRemoved([in] ICAComponent *preq, [in] ICADenial *pDenial,[in] long cDenials);
  807.     };
  808.  
  809.     [
  810.         uuid(11166998-DF8A-463a-B620-7BEC23542010),
  811.         helpstring("CA Default RequestDenial Control")
  812.     ]
  813.     coclass CAResDenialTree
  814.     {
  815.         [default] interface ICAResDenialTree;
  816.         [default, source] dispinterface _ICAResDenialTreeEvents;
  817.     };
  818.  
  819.                 // -----------------------------
  820.  
  821.     [
  822.             uuid(11166991-DF8A-463a-B620-7BEC23542010),
  823.             helpstring("_ICADefaultDlgEvents Interface")
  824.     ]
  825.     dispinterface _ICADefaultDlgEvents
  826.     {
  827.             properties:
  828.             methods:
  829.     };
  830.  
  831.     [
  832.             uuid(11166990-DF8A-463a-B620-7BEC23542010),
  833.             helpstring("CADefaultDlg Class")
  834.     ]
  835.     coclass CADefaultDlg
  836.     {
  837.             [default] interface ICADefaultDlg;
  838.             [default, source] dispinterface _ICADefaultDlgEvents;
  839.     };
  840.  
  841.             // -------------------------------------
  842.             //  Magic way to define the SID_ ...
  843.  
  844.     cpp_quote("#define SID_CAManager CLSID_CAManager")
  845. };
  846.